table of contents
fork(2) | 2007-10-27-16:31 | fork(2) |
Назва¶
fork — створює процес-нащадок.
Синопсис¶
#include <sys/types.h>
#include <unistd.h>
pid_t fork(void);
Опис¶
fork створює процес-нащадок, котрий відрізняється від батьківського лише своїм ідентифікатором (PID), ідентифікатором батьківського процесу (PPID), а також фактом, що використання ресурсів встановлюється в 0. Замки на файли та поточні сиґнали не успадковуються.
Під Linux fork реалізовано з використанням «copy-on-write» — копії сторінок пам'яті робляться лише при записі в них. Отже, ціною брунькування є лише час на копіювання батьківської таблиці сторінок і створення унікальної структури задачі для нащадка.
Повернене значення¶
В разі успіху, в потік виконання батьківського процесу повертається PID процесу-нащадка, а в потік нащадка — 0. При невдачі в батьківський контекст повертається -1, а змінна errno отримує відповідне значення.
Помилки¶
Відповідність стандартам¶
Виклик fork відповідає SVr4, SVID, POSIX, X/OPEN, BSD4.3.
Дивіться також¶
clone (2), execve (2), vfork (2), wait (2).
2007-10-27-16:31 | © 2005-2007 DLOU, GNU FDL |